跳到主要内容

了解哪些 Linux 命令

文件和目录操作

  • ls - 列出目录内容
  • cd - 切换目录
  • pwd - 显示当前路径
  • mkdir/rmdir - 创建/删除目录
  • cp/mv/rm - 复制/移动/删除文件
  • find - 查找文件
  • locate - 快速定位文件

文件内容操作

  • cat/less/more - 查看文件内容
  • head/tail - 查看文件头/尾部
  • grep - 文本搜索
  • sort/uniq - 排序/去重
  • wc - 统计行数、字数

系统监控

  • ps - 查看进程
  • top/htop - 系统资源监控
  • df/du - 磁盘使用情况
  • free - 内存使用情况
  • netstat - 网络连接状态

权限和用户

  • chmod/chown - 修改文件权限/所有者
  • su/sudo - 切换用户/提权执行
  • whoami/who - 查看当前用户

2. AWK和SED的使用场景

AWK使用场景

1. 按列处理数据

# 提取第3列数据
awk '{print $3}' file.txt

# 计算第2列的总和
awk '{sum+=$2} END {print sum}' data.txt

2. 条件过滤

# 显示第3列大于100的行
awk '$3 > 100' data.txt

# 根据条件统计
awk '$1=="ERROR" {count++} END {print count}' log.txt

3. 格式化输出

# 格式化显示用户信息
awk -F: '{printf "用户: %-10s ID: %s\n", $1, $3}' /etc/passwd

4. 日志分析

# 统计访问日志中的IP访问次数
awk '{count[$1]++} END {for(ip in count) print ip, count[ip]}' access.log

SED使用场景

1. 文本替换

# 替换文本
sed 's/old/new/g' file.txt

# 替换特定行
sed '3s/old/new/' file.txt

2. 删除操作

# 删除空行
sed '/^$/d' file.txt

# 删除包含特定内容的行
sed '/pattern/d' file.txt

3. 插入和追加

# 在第2行后插入内容
sed '2a\新内容' file.txt

# 在匹配行前插入
sed '/pattern/i\新内容' file.txt

4. 批量文件修改

# 原地修改文件
sed -i 's/old/new/g' *.txt

# 批量修改配置文件
sed -i 's/port=8080/port=9090/g' config.properties

实际应用示例

日志处理组合使用:

# 分析nginx访问日志,统计状态码分布
cat access.log | awk '{print $9}' | sort | uniq -c | sort -nr

# 提取错误日志中的IP并去重
grep "ERROR" app.log | sed 's/.*\[\(.*\)\].*/\1/' | sort | uniq

数据清理:

# 清理CSV文件,去除多余空格并统一格式
sed 's/ *, */,/g' data.csv | awk -F, '{printf "%s,%s,%.2f\n", $1, $2, $3}'

这些命令在运维、数据处理、日志分析等场景中非常实用,掌握它们能大大提高工作效率。